diff --git a/user_guide_src/source/helpers/array_helper.rst b/user_guide_src/source/helpers/array_helper.rst
index 20f5864..4805f58 100644
--- a/user_guide_src/source/helpers/array_helper.rst
+++ b/user_guide_src/source/helpers/array_helper.rst
@@ -32,6 +32,7 @@
 	:param	array	$array: Input array
 	:param	bool	$default: What to return if the array isn't valid
 	:returns:	NULL on failure or the array item.
+	:rtype:	mixed
 
 	Lets you fetch an item from an array. The function tests whether the
 	array index is set and whether it has a value. If a value exists it is
@@ -56,6 +57,7 @@
 	:param	array	$array: Input array
 	:param	bool	$default: What to return if the array isn't valid
 	:returns:	NULL on failure or the array item.
+	:rtype:	mixed
 
 	Lets you fetch a number of items from an array. The function tests
 	whether each of the array indices is set. If an index does not exist it
@@ -112,7 +114,8 @@
 .. function:: random_element($array)
 
 	:param	array	$array: Input array
-	:returns:	string (a random element from the array)
+	:returns:	A random element from the array
+	:rtype:	mixed
 
 	Takes an array as input and returns a random element from it.
 
diff --git a/user_guide_src/source/helpers/captcha_helper.rst b/user_guide_src/source/helpers/captcha_helper.rst
index 13cf92a..d83490b 100644
--- a/user_guide_src/source/helpers/captcha_helper.rst
+++ b/user_guide_src/source/helpers/captcha_helper.rst
@@ -135,6 +135,7 @@
 	:param	string	$img_url: URL to the CAPTCHA image folder
 	:param	string	$font_path: Server path to font
 	:returns:	array('word' => $word, 'time' => $now, 'image' => $img)
+	:rtype:	array
 
 	Takes an array of information to generate the CAPTCHA as input and
 	creates the image to your specifications, returning an array of
diff --git a/user_guide_src/source/helpers/cookie_helper.rst b/user_guide_src/source/helpers/cookie_helper.rst
index 3b59417..22fd0f7 100644
--- a/user_guide_src/source/helpers/cookie_helper.rst
+++ b/user_guide_src/source/helpers/cookie_helper.rst
@@ -27,15 +27,15 @@
 
 .. function:: set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]])
 
-	:param mixed $name: Cookie name *or* associative array of all of the parameters available to this function
-	:param string $value: Cookie value
-	:param int $expire: Number of seconds until expiration
-	:param string $domain: Cookie domain (usually: .yourdomain.com)
-	:param string $path: Cookie path
-	:param string $prefix: Cookie name prefix
-	:param bool $secure: Whether to only send the cookie through HTTPS
-	:param bool $httponly: Whether to hide the cookie from JavaScript
-	:returns: void
+	:param	mixed	$name: Cookie name *or* associative array of all of the parameters available to this function
+	:param	string	$value: Cookie value
+	:param	int	$expire: Number of seconds until expiration
+	:param	string	$domain: Cookie domain (usually: .yourdomain.com)
+	:param	string	$path: Cookie path
+	:param	string	$prefix: Cookie name prefix
+	:param	bool	$secure: Whether to only send the cookie through HTTPS
+	:param	bool	$httponly: Whether to hide the cookie from JavaScript
+	:rtype:	void
 
 	This helper function gives you view file friendly syntax to set browser
 	cookies. Refer to the :doc:`Input Library <../libraries/input>` for a
@@ -45,9 +45,10 @@
 
 .. function:: get_cookie($index[, $xss_clean = NULL]])
 
-	:param string $index: Cookie name
-	:param bool $xss_clean: Whether to apply XSS filtering to the returned value
-	:returns: mixed
+	:param	string	$index: Cookie name
+	:param	bool	$xss_clean: Whether to apply XSS filtering to the returned value
+	:returns:	The cookie value or NULL if not found
+	:rtype:	mixed
 
 	This helper function gives you view file friendly syntax to get browser
 	cookies. Refer to the :doc:`Input Library <../libraries/input>` for a
@@ -56,11 +57,11 @@
 
 .. function:: delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]]])
 
-	:param string $name: Cookie name
-	:param string $domain: Cookie domain (usually: .yourdomain.com)
-	:param string $path: Cookie path
-	:param string $prefix: Cookie name prefix
-	:returns: void
+	:param	string	$name: Cookie name
+	:param	string	$domain: Cookie domain (usually: .yourdomain.com)
+	:param	string	$path: Cookie path
+	:param	string	$prefix: Cookie name prefix
+	:rtype:	void
 
 	Lets you delete a cookie. Unless you've set a custom path or other
 	values, only the name of the cookie is needed.
diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst
index e7598df..39a9cb3 100644
--- a/user_guide_src/source/helpers/date_helper.rst
+++ b/user_guide_src/source/helpers/date_helper.rst
@@ -27,7 +27,8 @@
 .. function:: now([$timezone = NULL])
 
 	:param	string	$timezone: Timezone
-	:returns:	int
+	:returns:	UNIX timestamp
+	:rtype:	int
 
 	Returns the current time as a UNIX timestamp, referenced either to your server's
 	local time or any PHP suported timezone, based on the "time reference" setting
@@ -35,7 +36,6 @@
 	any other PHP supported timezone (which you'll typically do if you run a site
 	that lets each user set their own timezone settings) there is no benefit to using
 	this function over PHP's ``time()`` function.
-
 	::
 
 		echo now('Australia/Victoria');
@@ -43,12 +43,12 @@
 	If a timezone is not provided, it will return ``time()`` based on the
 	**time_reference** setting.
 
-
 .. function:: mdate([$datestr = ''[, $time = '']])
 
-	:param	string 	$datestr: Date string
-	:param	int 	$time: UNIX timestamp
-	:returns:	int
+	:param	string	$datestr: Date string
+	:param	int	$time: UNIX timestamp
+	:returns:	MySQL-formatted date
+	:rtype:	string
 
 	This function is identical to PHP's `date() <http://www.php.net/date>`_
 	function, except that it lets you use MySQL style date codes, where each
@@ -67,12 +67,12 @@
 	If a timestamp is not included in the second parameter the current time
 	will be used.
 
-
 .. function:: standard_date([$fmt = 'DATE_RFC822'[, $time = NULL]])
 
 	:param	string	$fmt: Date format
-	:param	int 	$time: UNIX timestamp
-	:returns:	string
+	:param	int	$time: UNIX timestamp
+	:returns:	Formatted date or FALSE on invalid format
+	:rtype:	string
 
 	Lets you generate a date string in one of several standardized formats.
 
@@ -92,25 +92,25 @@
 	**Supported formats:**
 
 	===============	=======================	======================================
-	Constant		Description				Example
+	Constant        Description             Example
 	===============	=======================	======================================
-	DATE_ATOM	Atom			2005-08-15T16:13:03+0000
-	DATE_COOKIE	HTTP Cookies		Sun, 14 Aug 2005 16:13:03 UTC
-	DATE_ISO8601   	ISO-8601		2005-08-14T16:13:03+00:00
-	DATE_RFC822	RFC 822			Sun, 14 Aug 05 16:13:03 UTC
-	DATE_RFC850	RFC 850			Sunday, 14-Aug-05 16:13:03 UTC
-	DATE_RFC1036	RFC 1036		Sunday, 14-Aug-05 16:13:03 UTC
-	DATE_RFC1123	RFC 1123		Sun, 14 Aug 2005 16:13:03 UTC
-	DATE_RFC2822 	RFC 2822		Sun, 14 Aug 2005 16:13:03 +0000
-	DATE_RSS	RSS			Sun, 14 Aug 2005 16:13:03 UTC
-	DATE_W3C	W3C			2005-08-14T16:13:03+0000
+	DATE_ATOM       Atom                    2005-08-15T16:13:03+0000
+	DATE_COOKIE     HTTP Cookies            Sun, 14 Aug 2005 16:13:03 UTC
+	DATE_ISO8601    ISO-8601                2005-08-14T16:13:03+00:00
+	DATE_RFC822     RFC 822                 Sun, 14 Aug 05 16:13:03 UTC
+	DATE_RFC850     RFC 850                 Sunday, 14-Aug-05 16:13:03 UTC
+	DATE_RFC1036    RFC 1036                Sunday, 14-Aug-05 16:13:03 UTC
+	DATE_RFC1123    RFC 1123                Sun, 14 Aug 2005 16:13:03 UTC
+	DATE_RFC2822    RFC 2822                Sun, 14 Aug 2005 16:13:03 +0000
+	DATE_RSS        RSS                     Sun, 14 Aug 2005 16:13:03 UTC
+	DATE_W3C        W3C                     2005-08-14T16:13:03+0000
 	===============	=======================	======================================
 
-
 .. function:: local_to_gmt([$time = ''])
 
 	:param	int	$time: UNIX timestamp
-	:returns:	string
+	:returns:	UNIX timestamp
+	:rtype:	int
 
 	Takes a UNIX timestamp as input and returns it as GMT.
 
@@ -118,13 +118,13 @@
 
 		$gmt = local_to_gmt(time());
 
-
 .. function:: gmt_to_local([$time = ''[, $timezone = 'UTC'[, $dst = FALSE]]])
 
-	:param	int 	$time: UNIX timestamp
+	:param	int	$time: UNIX timestamp
 	:param	string	$timezone: Timezone
-	:param	bool 	$dst: Whether DST is active
-	:returns:	int
+	:param	bool	$dst: Whether DST is active
+	:returns:	UNIX timestamp
+	:rtype:	int
 
 	Takes a UNIX timestamp (referenced to GMT) as input, and converts it to
 	a localized timestamp based on the timezone and Daylight Saving Time
@@ -140,11 +140,11 @@
 
 	.. note:: For a list of timezones see the reference at the bottom of this page.
 
-
 .. function:: mysql_to_unix([$time = ''])
 
-	:param	int 	$time: UNIX timestamp
-	:returns:	int
+	:param	string	$time: MySQL timestamp
+	:returns:	UNIX timestamp
+	:rtype:	int
 
 	Takes a MySQL Timestamp as input and returns it as a UNIX timestamp.
 
@@ -152,13 +152,13 @@
 
 		$unix = mysql_to_unix('20061124092345');
 
-
 .. function:: unix_to_human([$time = ''[, $seconds = FALSE[, $fmt = 'us']]])
 
 	:param	int	$time: UNIX timestamp
 	:param	bool	$seconds: Whether to show seconds
 	:param	string	$fmt: format (us or euro)
-	:returns: integer
+	:returns:	Formatted date
+	:rtype:	string
 
 	Takes a UNIX timestamp as input and returns it in a human readable
 	format with this prototype::
@@ -179,11 +179,11 @@
 		echo unix_to_human($now, TRUE, 'us'); // U.S. time with seconds
 		echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds
 
-
 .. function:: human_to_unix([$datestr = ''])
 
-	:param	int 	$datestr: Date string
-	:returns:	int UNIX timestamp or FALSE on failure
+	:param	int	$datestr: Date string
+	:returns:	UNIX timestamp or FALSE on failure
+	:rtype:	int
 
 	The opposite of the :func:`unix_to_time()` function. Takes a "human"
 	time as input and returns it as a UNIX timestamp. This is useful if you
@@ -196,12 +196,12 @@
 		$human = unix_to_human($now);
 		$unix = human_to_unix($human);
 
-
 .. function:: nice_date([$bad_date = ''[, $format = FALSE]])
 
 	:param	int	$bad_date: The terribly formatted date-like string
 	:param	string	$format: Date format to return (same as PHP's ``date()`` function)
-	:returns:	string
+	:returns:	Formatted date
+	:rtype:	string
 
 	This function can take a number poorly-formed date formats and convert
 	them into something useful. It also accepts well-formed dates.
@@ -220,13 +220,13 @@
 		// Should Produce: 2001-09-11
 		$better_date = nice_date($bad_date, 'Y-m-d');
 
-
 .. function:: timespan([$seconds = 1[, $time = ''[, $units = '']]])
 
 	:param	int	$seconds: Number of seconds
 	:param	string	$time: UNIX timestamp
 	:param	int	$units: Number of time units to display
-	:returns:	string
+	:returns:	Formatted time difference
+	:rtype:	string
 
 	Formats a UNIX timestamp so that is appears similar to this::
 
@@ -252,12 +252,12 @@
 	.. note:: The text generated by this function is found in the following language
 		file: `language/<your_lang>/date_lang.php`
 
-
 .. function:: days_in_month([$month = 0[, $year = '']])
 
 	:param	int	$month: a numeric month
 	:param	int	$year: a numeric year
-	:returns:	int
+	:returns:	Count of days in the specified month
+	:rtype:	int
 
 	Returns the number of days in a given month/year. Takes leap years into
 	account.
@@ -268,14 +268,14 @@
 
 	If the second parameter is empty, the current year will be used.
 
-
 .. function:: date_range([$unix_start = ''[, $mixed = ''[, $is_unix = TRUE[, $format = 'Y-m-d']]]])
 
 	:param	int	$unix_start: UNIX timestamp of the range start date
 	:param	int	$mixed: UNIX timestamp of the range end date or interval in days
 	:param	bool	$is_unix: set to FALSE if $mixed is not a timestamp
 	:param	string	$format: Output date format, same as in ``date()``
-	:returns:	array
+	:returns:	An array of dates
+	:rtype:	array
 
 	Returns a list of dates within a specified period.
 
@@ -288,11 +288,11 @@
 			echo $date."\n";
 		}
 
-
 .. function:: timezones([$tz = ''])
 
-	:param	string	$tz: a numeric timezone
-	:returns:	string
+	:param	string	$tz: A numeric timezone
+	:returns:	Hour difference from UTC
+	:rtype:	int
 
 	Takes a timezone reference (for a list of valid timezones, see the
 	"Timezone Reference" below) and returns the number of hours offset from
@@ -305,14 +305,14 @@
 
 	This function is useful when used with :func:`timezone_menu()`.
 
-
 .. function:: timezone_menu([$default = 'UTC'[, $class = ''[, $name = 'timezones'[, $attributes = '']]]])
 
 	:param	string	$default: Timezone
 	:param	string	$class: Class name
 	:param	string	$name: Menu name
 	:param	mixed	$attributes: HTML attributes
-	:returns:	string
+	:returns:	HTML drop down menu with time zones
+	:rtype:	string
 
 	Generates a pull-down menu of timezones, like this one:
 
@@ -381,7 +381,6 @@
 	.. note:: The text contained in the menu is found in the following
 		language file: `language/<your_lang>/date_lang.php`
 
-
 Timezone Reference
 ==================
 
@@ -389,47 +388,47 @@
 
 Note some of the location lists have been abridged for clarity and formatting.
 
-===========	=====================================================================
-Time Zone	Location
-===========	=====================================================================
-UM12		(UTC - 12:00) Baker/Howland Island
-UM11		(UTC - 11:00) Samoa Time Zone, Niue
-UM10		(UTC - 10:00) Hawaii-Aleutian Standard Time, Cook Islands
-UM95		(UTC - 09:30) Marquesas Islands
-UM9		(UTC - 09:00) Alaska Standard Time, Gambier Islands
-UM8		(UTC - 08:00) Pacific Standard Time, Clipperton Island
-UM7		(UTC - 11:00) Mountain Standard Time
-UM6		(UTC - 06:00) Central Standard Time
-UM5		(UTC - 05:00) Eastern Standard Time, Western Caribbean
-UM45		(UTC - 04:30) Venezuelan Standard Time
-UM4		(UTC - 04:00) Atlantic Standard Time, Eastern Caribbean
-UM35		(UTC - 03:30) Newfoundland Standard Time
-UM3		(UTC - 03:00) Argentina, Brazil, French Guiana, Uruguay
-UM2		(UTC - 02:00) South Georgia/South Sandwich Islands
-UM1		(UTC -1:00) Azores, Cape Verde Islands
-UTC		(UTC) Greenwich Mean Time, Western European Time
-UP1		(UTC +1:00) Central European Time, West Africa Time
-UP2		(UTC +2:00) Central Africa Time, Eastern European Time
-UP3		(UTC +3:00) Moscow Time, East Africa Time
-UP35		(UTC +3:30) Iran Standard Time
-UP4		(UTC +4:00) Azerbaijan Standard Time, Samara Time
-UP45		(UTC +4:30) Afghanistan
-UP5		(UTC +5:00) Pakistan Standard Time, Yekaterinburg Time
-UP55		(UTC +5:30) Indian Standard Time, Sri Lanka Time
-UP575		(UTC +5:45) Nepal Time
-UP6		(UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time
-UP65		(UTC +6:30) Cocos Islands, Myanmar
-UP7		(UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam
-UP8		(UTC +8:00) Australian Western Standard Time, Beijing Time
-UP875		(UTC +8:45) Australian Central Western Standard Time
-UP9		(UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk
-UP95		(UTC +9:30) Australian Central Standard Time
-UP10		(UTC +10:00) Australian Eastern Standard Time, Vladivostok Time
-UP105		(UTC +10:30) Lord Howe Island
-UP11		(UTC +11:00) Magadan Time, Solomon Islands, Vanuatu
-UP115		(UTC +11:30) Norfolk Island
-UP12		(UTC +12:00) Fiji, Gilbert Islands, Kamchatka, New Zealand
-UP1275		(UTC +12:45) Chatham Islands Standard Time
-UP13		(UTC +13:00) Phoenix Islands Time, Tonga
-UP14		(UTC +14:00) Line Islands
+===========     =====================================================================
+Time Zone       Location
+===========     =====================================================================
+UM12            (UTC - 12:00) Baker/Howland Island
+UM11            (UTC - 11:00) Samoa Time Zone, Niue
+UM10            (UTC - 10:00) Hawaii-Aleutian Standard Time, Cook Islands
+UM95            (UTC - 09:30) Marquesas Islands
+UM9             (UTC - 09:00) Alaska Standard Time, Gambier Islands
+UM8             (UTC - 08:00) Pacific Standard Time, Clipperton Island
+UM7             (UTC - 11:00) Mountain Standard Time
+UM6             (UTC - 06:00) Central Standard Time
+UM5             (UTC - 05:00) Eastern Standard Time, Western Caribbean
+UM45            (UTC - 04:30) Venezuelan Standard Time
+UM4             (UTC - 04:00) Atlantic Standard Time, Eastern Caribbean
+UM35            (UTC - 03:30) Newfoundland Standard Time
+UM3             (UTC - 03:00) Argentina, Brazil, French Guiana, Uruguay
+UM2             (UTC - 02:00) South Georgia/South Sandwich Islands
+UM1             (UTC -1:00) Azores, Cape Verde Islands
+UTC             (UTC) Greenwich Mean Time, Western European Time
+UP1             (UTC +1:00) Central European Time, West Africa Time
+UP2             (UTC +2:00) Central Africa Time, Eastern European Time
+UP3             (UTC +3:00) Moscow Time, East Africa Time
+UP35            (UTC +3:30) Iran Standard Time
+UP4             (UTC +4:00) Azerbaijan Standard Time, Samara Time
+UP45            (UTC +4:30) Afghanistan
+UP5             (UTC +5:00) Pakistan Standard Time, Yekaterinburg Time
+UP55            (UTC +5:30) Indian Standard Time, Sri Lanka Time
+UP575           (UTC +5:45) Nepal Time
+UP6             (UTC +6:00) Bangladesh Standard Time, Bhutan Time, Omsk Time
+UP65            (UTC +6:30) Cocos Islands, Myanmar
+UP7             (UTC +7:00) Krasnoyarsk Time, Cambodia, Laos, Thailand, Vietnam
+UP8             (UTC +8:00) Australian Western Standard Time, Beijing Time
+UP875           (UTC +8:45) Australian Central Western Standard Time
+UP9             (UTC +9:00) Japan Standard Time, Korea Standard Time, Yakutsk
+UP95            (UTC +9:30) Australian Central Standard Time
+UP10            (UTC +10:00) Australian Eastern Standard Time, Vladivostok Time
+UP105           (UTC +10:30) Lord Howe Island
+UP11            (UTC +11:00) Magadan Time, Solomon Islands, Vanuatu
+UP115           (UTC +11:30) Norfolk Island
+UP12            (UTC +12:00) Fiji, Gilbert Islands, Kamchatka, New Zealand
+UP1275          (UTC +12:45) Chatham Islands Standard Time
+UP13            (UTC +13:00) Phoenix Islands Time, Tonga
+UP14            (UTC +14:00) Line Islands
 ===========	=====================================================================
\ No newline at end of file
diff --git a/user_guide_src/source/helpers/directory_helper.rst b/user_guide_src/source/helpers/directory_helper.rst
index 514e80c..3004316 100644
--- a/user_guide_src/source/helpers/directory_helper.rst
+++ b/user_guide_src/source/helpers/directory_helper.rst
@@ -29,11 +29,11 @@
 
 .. function:: directory_map($source_dir[, $directory_depth = 0[, $hidden = FALSE]])
 
-	:param string	$source_dir: path to the ource directory
-	:param integer	$directory_depth: depth of directories to traverse (0 =
-		fully recursive, 1 = current dir, etc)
-	:param boolean	$hidden: whether to include hidden directories
-	:returns: array
+	:param	string	$source_dir: Path to the ource directory
+	:param	int	$directory_depth: Depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
+	:param	bool	$hidden: Whether to include hidden directories
+	:returns:	An array of files
+	:rtype:	array
 
 	Examples::
 
diff --git a/user_guide_src/source/helpers/download_helper.rst b/user_guide_src/source/helpers/download_helper.rst
index 17b68f4..f374d49 100644
--- a/user_guide_src/source/helpers/download_helper.rst
+++ b/user_guide_src/source/helpers/download_helper.rst
@@ -29,7 +29,7 @@
 	:param	string	$filename: Filename
 	:param	mixed	$data: File contents
 	:param	bool	$set_mime: Whether to try to send the actual MIME type
-	:returns:	void
+	:rtype:	void
 
 	Generates server headers which force data to be downloaded to your
 	desktop. Useful with file downloads. The first parameter is the **name
diff --git a/user_guide_src/source/helpers/email_helper.rst b/user_guide_src/source/helpers/email_helper.rst
index fe3ccdd..b665ce5 100644
--- a/user_guide_src/source/helpers/email_helper.rst
+++ b/user_guide_src/source/helpers/email_helper.rst
@@ -30,8 +30,9 @@
 
 .. function:: valid_email($email)
 
-	:param	string	$email: Email address
-	:returns:	bool
+	:param	string	$email: E-mail address
+	:returns:	TRUE if a valid email is supplied, FALSE otherwise
+	:rtype:	bool
 
 	Checks if the input is a correctly formatted e-mail address. Note that is
 	doesn't actually prove that the address will be able recieve mail, but
@@ -52,13 +53,13 @@
 
 		(bool) filter_var($email, FILTER_VALIDATE_EMAIL);
 
-
 .. function:: send_email($recipient, $subject, $message)
 
 	:param	string	$recipient: E-mail address
 	:param	string	$subject: Mail subject
 	:param	string	$message: Message body
-	:returns:	bool
+	:returns:	TRUE if the mail was successfully sent, FALSE in case of an error
+	:rtype:	bool
 
 	Sends an email using PHP's native `mail() <http://www.php.net/function.mail>`_
 	function.
@@ -70,4 +71,4 @@
 			mail($recipient, $subject, $message);
 
 	For a more robust email solution, see CodeIgniter's :doc:`Email Library
-	<../libraries/email>`.
+	<../libraries/email>`.
\ No newline at end of file
diff --git a/user_guide_src/source/helpers/file_helper.rst b/user_guide_src/source/helpers/file_helper.rst
index 4d225d2..59cabcc 100644
--- a/user_guide_src/source/helpers/file_helper.rst
+++ b/user_guide_src/source/helpers/file_helper.rst
@@ -27,7 +27,8 @@
 .. function:: read_file($file)
 
 	:param	string	$file: File path
-	:returns:	string or FALSE on failure
+	:returns:	File contents or FALSE on failure
+	:rtype:	string
 
 	Returns the data contained in the file specified in the path.
 
@@ -48,13 +49,13 @@
 		function might not work if you are trying to access a file above the
 		calling script.
 
-
 .. function:: write_file($path, $data[, $mode = 'wb'])
 
 	:param	string	$path: File path
 	:param	string	$data: Data to write to file
 	:param	string	$mode: ``fopen()`` mode
-	:returns:	bool
+	:returns:	TRUE if the write was successful, FALSE in case of an error
+	:rtype:	bool
 
 	Writes data to the file specified in the path. If the file does not exist then the
 	function will create it.
@@ -88,13 +89,13 @@
 
 	.. note:: This function acquires an exclusive lock on the file while writing to it.
 
-
 .. function:: delete_files($path[, $del_dir = FALSE[, $htdocs = FALSE]])
 
 	:param	string	$path: Directory path
 	:param	bool	$del_dir: Whether to also delete directories
 	:param	bool	$htdocs: Whether to skip deleting .htaccess and index page files
-	:returns:	bool
+	:returns:	TRUE on success, FALSE in case of an error
+	:rtype:	bool
 
 	Deletes ALL files contained in the supplied path.
 
@@ -111,12 +112,12 @@
 
 	.. note:: The files must be writable or owned by the system in order to be deleted.
 
-
 .. function:: get_filenames($source_dir[, $include_path = FALSE])
 
 	:param	string	$source_dir: Directory path
 	:param	bool	$include_path: Whether to include the path as part of the filenames
-	:returns:	array
+	:returns:	An array of file names
+	:rtype:	array
 
 	Takes a server path as input and returns an array containing the names of all files
 	contained within it. The file path can optionally be added to the file names by setting
@@ -126,13 +127,12 @@
 
 		$controllers = get_filenames(APPPATH.'controllers/');
 
-
 .. function:: get_dir_file_info($source_dir, $top_level_only)
 
 	:param	string	$source_dir: Directory path
-	:param	bool	$top_level_only: Whether to look only at the specified directory
-			(excluding sub-directories)
-	:returns:	array
+	:param	bool	$top_level_only: Whether to look only at the specified directory (excluding sub-directories)
+	:returns:	An array containing info on the supplied directory's contents
+	:rtype:	array
 
 	Reads the specified directory and builds an array containing the filenames, filesize,
 	dates, and permissions. Sub-folders contained within the specified path are only read
@@ -143,12 +143,12 @@
 
 		$models_info = get_dir_file_info(APPPATH.'models/');
 
-
 .. function:: get_file_info($file[, $returned_values = array('name', 'server_path', 'size', 'date')])
 
 	:param	string	$file: File path
 	:param	array	$returned_values: What type of info to return
-	:returns:	array or FALSE on failure
+	:returns:	An array containing info on the specified file or FALSE on failure
+	:rtype:	array
 
 	Given a file and path, returns (optionally) the *name*, *path*, *size* and *date modified*
 	information attributes for a file. Second parameter allows you to explicitly declare what
@@ -157,14 +157,11 @@
 	Valid ``$returned_values`` options are: `name`, `size`, `date`, `readable`, `writeable`,
 	`executable` and `fileperms`.
 
-	.. note:: The *writable* attribute is checked via PHP's ``is_writeable()`` function, which
-		known to have issues on the IIS webserver. Consider using *fileperms* instead,
-		which returns information from PHP's ``fileperms()`` function.
-
 .. function:: get_mime_by_extension($filename)
 
 	:param	string	$filename: File name
-	:returns:	string or FALSE on failure
+	:returns:	MIME type string or FALSE on failure
+	:rtype:	string
 
 	Translates a filename extension into a MIME type based on *config/mimes.php*.
 	Returns FALSE if it can't determine the type, or read the MIME config file.
@@ -178,11 +175,11 @@
 		is here strictly for convenience. It should not be used for security
 		purposes.
 
-
 .. function:: symbolic_permissions($perms)
 
 	:param	int	$perms: Permissions
-	:returns:	string
+	:returns:	Symbolic permissions string
+	:rtype:	string
 
 	Takes numeric permissions (such as is returned by ``fileperms()``) and returns
 	standard symbolic notation of file permissions.
@@ -191,11 +188,11 @@
 
 		echo symbolic_permissions(fileperms('./index.php'));  // -rw-r--r--
 
-
 .. function:: octal_permissions($perms)
 
 	:param	int	$perms: Permissions
-	:returns:	string
+	:returns:	Octal permissions string
+	:rtype:	string
 
 	Takes numeric permissions (such as is returned by ``fileperms()``) and returns
 	a three character octal notation of file permissions.
diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst
index dcb5bee..4fa5f24 100644
--- a/user_guide_src/source/helpers/form_helper.rst
+++ b/user_guide_src/source/helpers/form_helper.rst
@@ -30,7 +30,8 @@
 	:param	string	$action: Form action/target URI string
 	:param	array	$attributes: HTML attributes
 	:param	array	$hidden: An array of hidden fields' definitions
-	:returns:	string
+	:returns:	An HTML form opening tag
+	:rtype:	string
 
 	Creates an opening form tag with a base URL **built from your config preferences**.
 	It will optionally let you add form attributes and hidden input fields, and
@@ -87,7 +88,8 @@
 	:param	string	$action: Form action/target URI string
 	:param	array	$attributes: HTML attributes
 	:param	array	$hidden: An array of hidden fields' definitions
-	:returns:	string
+	:returns:	An HTML multipart form opening tag
+	:rtype:	string
 
 	This function is absolutely identical to :func:`form_open()` above,
 	except that it adds a *multipart* attribute, which is necessary if you
@@ -98,7 +100,8 @@
 
 	:param	string	$name: Field name
 	:param	string	$value: Field value
-	:returns:	string
+	:returns:	An HTML hidden input field tag
+	:rtype:	string
 
 	Lets you generate hidden input fields. You can either submit a
 	name/value string to create one field::
@@ -159,13 +162,13 @@
 			<input type="hidden" name="email" value="john@example.com" id="hiddenemail" class="hiddenemail" />
 		*/
 
-
 .. function:: form_input([$data = ''[, $value = ''[, $extra = '']])
 
 	:param	array	$data: Field attributes data
 	:param	string	$value: Field value
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML text input field tag
+	:rtype:	string
 
 	Lets you generate a standard text input field. You can minimally pass
 	the field name and value in the first and second parameter::
@@ -198,13 +201,13 @@
 		$js = 'onClick="some_function()"';
 		echo form_input('username', 'johndoe', $js);
 
-
 .. function:: form_password([$data = ''[, $value = ''[, $extra = '']]])
 
 	:param	array	$data: Field attributes data
 	:param	string	$value: Field value
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML password input field tag
+	:rtype:	string
 
 	This function is identical in all respects to the :func:`form_input()`
 	function above except that it uses the "password" input type.
@@ -215,7 +218,8 @@
 	:param	array	$data: Field attributes data
 	:param	string	$value: Field value
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML file upload input field tag
+	:rtype:	string
 
 	This function is identical in all respects to the :func:`form_input()`
 	function above except that it uses the "file" input type, allowing it to
@@ -227,7 +231,8 @@
 	:param	array	$data: Field attributes data
 	:param	string	$value: Field value
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML textarea tag
+	:rtype:	string
 
 	This function is identical in all respects to the :func:`form_input()`
 	function above except that it generates a "textarea" type.
@@ -235,14 +240,14 @@
 	.. note:: Instead of the *maxlength* and *size* attributes in the above example,
 		you will instead specify *rows* and *cols*.
 
-
 .. function:: form_dropdown([$name = ''[, $options = array()[, $selected = array()[, $extra = '']]]])
 
 	:param	string	$name: Field name
 	:param	array	$options: An associative array of options to be listed
 	:param	array	$selected: List of fields to mark with the *selected* attribute
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML dropdown select field tag
+	:rtype:	string
 
 	Lets you create a standard drop-down field. The first parameter will
 	contain the name of the field, the second parameter will contain an
@@ -305,7 +310,8 @@
 	:param	array	$options: An associative array of options to be listed
 	:param	array	$selected: List of fields to mark with the *selected* attribute
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML dropdown multiselect field tag
+	:rtype:	string
 
 	Lets you create a standard multiselect field. The first parameter will
 	contain the name of the field, the second parameter will contain an
@@ -321,7 +327,8 @@
 
 	:param	string	$legend_text: Text to put in the <legend> tag
 	:param	array	$attributes: Attributes to be set on the <fieldset> tag
-	:returns:	string
+	:returns:	An HTML fieldset opening tag
+	:rtype:	string
 
 	Lets you generate fieldset/legend fields.
 
@@ -365,7 +372,9 @@
 .. function:: form_fieldset_close([$extra = ''])
 
 	:param	string	$extra: Anything to append after the closing tag, *as is*
-	:returns:	string
+	:returns:	An HTML fieldset closing tag
+	:rtype:	string
+	
 
 	Produces a closing </fieldset> tag. The only advantage to using this
 	function is it permits you to pass data to it which will be added below
@@ -384,7 +393,8 @@
 	:param	string	$value: Field value
 	:param	bool	$checked: Whether to mark the checkbox as being *checked*
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML checkbox input tag
+	:rtype:	string
 
 	Lets you generate a checkbox field. Simple example::
 
@@ -422,7 +432,8 @@
 	:param	string	$value: Field value
 	:param	bool	$checked: Whether to mark the radio button as being *checked*
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML radio input tag
+	:rtype:	string
 
 	This function is identical in all respects to the :func:`form_checkbox()`
 	function above except that it uses the "radio" input type.
@@ -433,7 +444,8 @@
 	:param	string	$label_text: Text to put in the <label> tag
 	:param	string	$id: ID of the form element that we're making a label for
 	:param	string	$attributes: HTML attributes
-	:returns:	string
+	:returns:	An HTML field label tag
+	:rtype:	string
 
 	Lets you generate a <label>. Simple example::
 
@@ -459,7 +471,8 @@
 	:param	string	$data: Button name
 	:param	string	$value: Button value
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML input submit tag
+	:rtype:	string
 
 	Lets you generate a standard submit button. Simple example::
 
@@ -476,7 +489,8 @@
 	:param	string	$data: Button name
 	:param	string	$value: Button value
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML input reset button tag
+	:rtype:	string
 
 	Lets you generate a standard reset button. Use is identical to
 	:func:`form_submit()`.
@@ -487,7 +501,8 @@
 	:param	string	$data: Button name
 	:param	string	$content: Button label
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
-	:returns:	string
+	:returns:	An HTML button tag
+	:rtype:	string
 
 	Lets you generate a standard button element. You can minimally pass the
 	button name and content in the first and second parameter::
@@ -519,7 +534,8 @@
 .. function:: form_close([$extra = ''])
 
 	:param	string	$extra: Anything to append after the closing tag, *as is*
-	:returns:	string
+	:returns:	An HTML form closing tag
+	:rtype:	string
 
 	Produces a closing </form> tag. The only advantage to using this
 	function is it permits you to pass data to it which will be added below
@@ -534,7 +550,8 @@
 
 	:param	string	$str: Value to escape
 	:param	bool	$is_textarea: Whether we're preparing for <textarea> or a regular input tag
-	:returns:	string
+	:returns:	Escaped value
+	:rtype:	string
 
 	Allows you to safely use HTML and characters such as quotes within form
 	elements without breaking out of the form.
@@ -560,7 +577,8 @@
 	:param	string	$field: Field name
 	:param	string	$default: Default value
 	:param	bool	$is_textarea: Whether we're setting <textarea> content
-	:returns:	string
+	:returns:	Field value
+	:rtype:	string
 
 	Permits you to set the value of an input form or textarea. You must
 	supply the field name via the first parameter of the function. The
@@ -579,7 +597,8 @@
 	:param	string	$field: Field name
 	:param	string	$value: Value to check for
 	:param	string	$default: Whether the value is also a default one
-	:returns:	string
+	:returns:	'selected' attribute or an empty string
+	:rtype:	string
 
 	If you use a <select> menu, this function permits you to display the
 	menu item that was selected.
@@ -596,13 +615,13 @@
 			<option value="three" <?php echo  set_select('myselect', 'three'); ?> >Three</option>
 		</select>
 
-
 .. function:: set_checkbox([$field = ''[, $value = ''[, $default = FALSE]]])
 
 	:param	string	$field: Field name
 	:param	string	$value: Value to check for
 	:param	string	$default: Whether the value is also a default one
-	:returns:	string
+	:returns:	'checked' attribute or an empty string
+	:rtype:	string
 
 	Permits you to display a checkbox in the state it was submitted.
 
@@ -615,13 +634,13 @@
 		<input type="checkbox" name="mycheck" value="1" <?php echo set_checkbox('mycheck', '1'); ?> />
 		<input type="checkbox" name="mycheck" value="2" <?php echo set_checkbox('mycheck', '2'); ?> />
 
-
 .. function:: set_radio([$field = ''[, $value = ''[, $default = FALSE]]])
 
 	:param	string	$field: Field name
 	:param	string	$value: Value to check for
 	:param	string	$default: Whether the value is also a default one
-	:returns:	string
+	:returns:	'checked' attribute or an empty string
+	:rtype:	string
 
 	Permits you to display radio buttons in the state they were submitted.
 	This function is identical to the :func:`set_checkbox()` function above.
@@ -637,13 +656,13 @@
 		defined, the control for ``set_*()`` is handed over to a method of the
 		class instead of the generic helper function.
 
-
 .. function:: form_error([$field = ''[, $prefix = ''[, $suffix = '']]])
 
 	:param	string	$field:	Field name
 	:param	string	$prefix: Error opening tag
 	:param	string	$suffix: Error closing tag
-	:returns:	string
+	:returns:	HTML-formatted form validation error message(s)
+	:rtype:	string
 
 	Returns a validation error message from the :doc:`Form Validation Library
 	<../libraries/form_validation>`, associated with the specified field name.
@@ -662,7 +681,8 @@
 
 	:param	string	$prefix: Error opening tag
 	:param	string	$suffix: Error closing tag
-	:returns:	string
+	:returns:	HTML-formatted form validation error message(s)
+	:rtype:	string
 
 	Similarly to the :func:`form_error()` function, returns all validation
 	error messages produced by the :doc:`Form Validation Library
diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst
index 9e9d7ca..3324da8 100644
--- a/user_guide_src/source/helpers/html_helper.rst
+++ b/user_guide_src/source/helpers/html_helper.rst
@@ -28,7 +28,8 @@
 .. function:: br([$count = 1])
 
 	:param	int	$count: Number of times to repeat the tag
-	:returns:	string
+	:returns:	HTML line break tag
+	:rtype:	string
 
 	Generates line break tags (<br />) based on the number you submit.
 	Example::
@@ -41,13 +42,13 @@
 
 		<br /><br /><br />
 
-
 .. function:: heading([$data = ''[, $h = '1'[, $attributes = '']]])
 
 	:param	string	$data: Content
 	:param	string	$h: Heading level
 	:param	array	$attributes: HTML attributes
-	:returns:	string
+	:returns:	HTML heading tag
+	:rtype:	string
 
 	Lets you create HTML heading tags. The first parameter will contain the
 	data, the second the size of the heading. Example::
@@ -67,13 +68,13 @@
 
 		<h3 class="pink">Welcome!<h3>
 
-
 .. function:: img([$src = ''[, $index_page = FALSE[, $attributes = '']]])
 
 	:param	string	$src: Image source data
 	:param	bool	$index_page: Whether to treat $src as a routed URI string
 	:param	array	$attributes: HTML attributes
-	:returns:	string
+	:returns:	HTML image tag
+	:rtype:	string
 
 	Lets you create HTML <img /> tags. The first parameter contains the
 	image source. Example::
@@ -106,8 +107,7 @@
 		img($image_properties);
 		// <img src="http://site.com/index.php/images/picture.jpg" alt="Me, demonstrating how to eat 4 slices of pizza at one time" class="post_images" width="200" height="200" title="That was quite a night" rel="lightbox" />
 
-
-.. function:: ling_tag([$href = ''[, $rel = 'stylesheet'[, $type = 'text/css'[, $title = ''[, $media = ''[, $index_page = FALSE]]]]]])
+.. function:: link_tag([$href = ''[, $rel = 'stylesheet'[, $type = 'text/css'[, $title = ''[, $media = ''[, $index_page = FALSE]]]]]])
 
 	:param	string	$href: What are we linking to
 	:param	string	$rel: Relation type
@@ -115,7 +115,8 @@
 	:param	string	$title: Link title
 	:param	string	$media: Media type
 	:param	bool	$index_page: Whether to treat $src as a routed URI string
-	:returns:	string
+	:returns:	HTML link tag
+	:rtype:	string
 
 	Lets you create HTML <link /> tags. This is useful for stylesheet links,
 	as well as other links. The parameters are *href*, with optional *rel*,
@@ -150,11 +151,11 @@
 		echo link_tag($link);
 		// <link href="http://site.com/css/printer.css" rel="stylesheet" type="text/css" media="print" />
 
-
 .. function:: nbs([$num = 1])
 
 	:param	int	$num: Number of space entities to produce
-	:returns:	string
+	:returns:	A sequence of non-breaking space HTML entities
+	:rtype:	string
 
 	Generates non-breaking spaces (&nbsp;) based on the number you submit.
 	Example::
@@ -172,7 +173,8 @@
 
 	:param	array	$list: List entries
 	:param	array	$attributes: HTML attributes
-	:returns:	string
+	:returns:	HTML-formatted unordered list
+	:rtype:	string
 
 	Permits you to generate ordered or unordered HTML lists from simple or
 	multi-dimensional arrays. Example::
@@ -291,19 +293,20 @@
 
 	:param	array	$list: List entries
 	:param	array	$attributes: HTML attributes
-	:returns:	string
+	:returns:	HTML-formatted ordered list
+	:rtype:	string
 
 	Identical to :func:`ul()`, only it produces the <ol> tag for
 	ordered lists instead of <ul>.
 
-
 .. function:: meta([$name = ''[, $content = ''[, $type = 'name'[, $newline = "\n"]]]])
 
 	:param	string	$name: Meta name
 	:param	string	$content: Meta content
 	:param	string	$type: Meta type
 	:param	string	$newline: Newline character
-	:returns:	string
+	:returns:	HTML meta tag
+	:rtype:	string
 
 	Helps you generate meta tags. You can pass strings to the function, or
 	simple arrays, or multidimensional ones.
@@ -355,6 +358,8 @@
 .. function:: doctype([$type = 'xhtml1-strict'])
 
 	:param	string	$type: Doctype name
+	:returns:	HTML DocType tag
+	:rtype:	string
 
 	Helps you generate document type declarations, or DTD's. XHTML 1.0
 	Strict is used by default, but many doctypes are available.
@@ -368,44 +373,26 @@
 	The following is a list of doctype choices. These are configurable, and
 	pulled from application/config/doctypes.php
 
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| Doctype                       | Option                       | Result                                                                                                                                           |
-	+===============================+==============================+==================================================================================================================================================+
-	| XHTML 1.1                     | doctype('xhtml11')           | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">                                                |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML 1.0 Strict              | doctype('xhtml1-strict')     | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">                                    |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML 1.0 Transitional        | doctype('xhtml1-trans')      | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">                        |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML 1.0 Frameset            | doctype('xhtml1-frame')      | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">                                |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML Basic 1.1               | doctype('xhtml-basic11')     | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">                                    |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| HTML 5                        | doctype('html5')             | <!DOCTYPE html>                                                                                                                                  |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| HTML 4 Strict                 | doctype('html4-strict')      | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">                                                       |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| HTML 4 Transitional           | doctype('html4-trans')       | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">                                           |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| HTML 4 Frameset               | doctype('html4-frame')       | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">                                            |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| MathML 1.01                   | doctype('mathml1')	       | <!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">                                                                           |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| MathML 2.0                    | doctype('mathml2')           | <!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">                                             |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| SVG 1.0                       | doctype('svg10')             | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">                                       |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| SVG 1.1 Full                  | doctype('svg11')             | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">                                               |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| SVG 1.1 Basic                 | doctype('svg11-basic')       | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">                                   |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| SVG 1.1 Tiny                  | doctype('svg11-tiny')        | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">                                     |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML+MathML+SVG (XHTML host) | doctype('xhtml-math-svg-xh') | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">    |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML+MathML+SVG (SVG host)   | doctype('xhtml-math-svg-sh') | <!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"> |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML+RDFa 1.0                | doctype('xhtml-rdfa-1')      | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">                                          |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
-	| XHTML+RDFa 1.1                | doctype('xhtml-rdfa-2')      | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">                                          |
-	+-------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
\ No newline at end of file
+	=============================== =================== ==================================================================================================================================================
+	Document type                   Option              Result
+	=============================== =================== ==================================================================================================================================================
+	XHTML 1.1                       xhtml11             <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+	XHTML 1.0 Strict                xhtml1-strict       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+	XHTML 1.0 Transitional          xhtml1-trans        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+	XHTML 1.0 Frameset              xhtml1-frame        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+	XHTML Basic 1.1                 xhtml-basic11       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
+	HTML 5                          html5               <!DOCTYPE html>
+	HTML 4 Strict                   html4-strict        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+	HTML 4 Transitional             html4-trans         <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+	HTML 4 Frameset                 html4-frame         <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+	MathML 1.01                     mathml1             <!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">
+	MathML 2.0                      mathml2             <!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">
+	SVG 1.0                         svg10               <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+	SVG 1.1 Full                    svg11               <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+	SVG 1.1 Basic                   svg11-basic         <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
+	SVG 1.1 Tiny                    svg11-tiny          <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+	XHTML+MathML+SVG (XHTML host)   xhtml-math-svg-xh   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
+	XHTML+MathML+SVG (SVG host)     xhtml-math-svg-sh   <!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
+	XHTML+RDFa 1.0                  xhtml-rdfa-1        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
+	XHTML+RDFa 1.1                  xhtml-rdfa-2        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
+	=============================== =================== ==================================================================================================================================================
\ No newline at end of file
diff --git a/user_guide_src/source/helpers/inflector_helper.rst b/user_guide_src/source/helpers/inflector_helper.rst
index 717ecc6..d0cb17c 100644
--- a/user_guide_src/source/helpers/inflector_helper.rst
+++ b/user_guide_src/source/helpers/inflector_helper.rst
@@ -28,50 +28,51 @@
 .. function:: singular($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	A singular word
+	:rtype:	string
 
 	Changes a plural word to singular. Example::
 
 		echo singular('dogs'); // Prints 'dog'
 
-
 .. function:: plural($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	A plular word
+	:rtype:	string
 
 	Changes a singular word to plural. Example::
 
 		echo plural('dog'); // Prints 'dogs'
 
-
 .. function:: camelize($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	Camelized string
+	:rtype:	string
 
 	Changes a string of words separated by spaces or underscores to camel
 	case. Example::
 
 		echo camelize('my_dog_spot'); // Prints 'myDogSpot'
 
-
 .. function:: underscore($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	String containing underscores instead of spaces
+	:rtype:	string
 
 	Takes multiple words separated by spaces and underscores them.
 	Example::
 
 		echo underscore('my dog spot'); // Prints 'my_dog_spot'
 
-
 .. function:: humanize($str[, $separator = '_'])
 
 	:param	string	$str: Input string
 	:param	string	$separator: Input separator
-	:returns:	string
+	:returns:	Humanized string
+	:rtype:	string
 
 	Takes multiple words separated by underscores and adds spaces between
 	them. Each word is capitalized.
@@ -84,11 +85,11 @@
 
 		echo humanize('my-dog-spot', '-'); // Prints 'My Dog Spot'
 
-
 .. function:: is_countable($word)
 
 	:param	string	$word: Input string
-	:returns:	bool
+	:returns:	TRUE if the word is countable or FALSE if not
+	:rtype:	bool
 
 	Checks if the given word has a plural version. Example::
 
diff --git a/user_guide_src/source/helpers/language_helper.rst b/user_guide_src/source/helpers/language_helper.rst
index 9e5d9bd..e4d0937 100644
--- a/user_guide_src/source/helpers/language_helper.rst
+++ b/user_guide_src/source/helpers/language_helper.rst
@@ -27,16 +27,17 @@
 
 .. function:: lang($line[, $for = ''[, $attributes = array()]])
 
-  :param	string	$line: Language line key
-  :param	string	$for: HTML "for" attribute (ID of the element we're creating a label for)
-  :param	array	$attributes: Any additional HTML attributes
-  :returns:	string
+ 	:param	string	$line: Language line key
+ 	:param	string	$for: HTML "for" attribute (ID of the element we're creating a label for)
+ 	:param	array	$attributes: Any additional HTML attributes
+ 	:returns:	HTML-formatted language line label
+	:rtype:	string
 
-  This function returns a line of text from a loaded language file with
-  simplified syntax that may be more desirable for view files than
-  ``CI_Lang::line()``.
+	This function returns a line of text from a loaded language file with
+	simplified syntax that may be more desirable for view files than
+	``CI_Lang::line()``.
 
-  Example::
+	Example::
 
-  	echo lang('language_key', 'form_item_id', array('class' => 'myClass');
-  	// Outputs: <label for="form_item_id" class="myClass">Language line</label>
\ No newline at end of file
+		echo lang('language_key', 'form_item_id', array('class' => 'myClass'));
+		// Outputs: <label for="form_item_id" class="myClass">Language line</label>
\ No newline at end of file
diff --git a/user_guide_src/source/helpers/number_helper.rst b/user_guide_src/source/helpers/number_helper.rst
index 5a3d72b..2de4457 100644
--- a/user_guide_src/source/helpers/number_helper.rst
+++ b/user_guide_src/source/helpers/number_helper.rst
@@ -29,7 +29,8 @@
 
 	:param	mixed	$num: Number of bytes
 	:param	int	$precision: Floating point precision
-	:returns:	string
+	:returns:	Formatted data size string
+	:rtype:	string
 
 	Formats numbers as bytes, based on size, and adds the appropriate
 	suffix. Examples::
@@ -48,4 +49,4 @@
 		 echo byte_format(45678, 2); // Returns 44.61 KB
 
 	.. note:: The text generated by this function is found in the following
-		language file: `language/<your_lang>/number_lang.php`
\ No newline at end of file
+		language file: *language/<your_lang>/number_lang.php*
\ No newline at end of file
diff --git a/user_guide_src/source/helpers/path_helper.rst b/user_guide_src/source/helpers/path_helper.rst
index 61877d7..705ca23 100644
--- a/user_guide_src/source/helpers/path_helper.rst
+++ b/user_guide_src/source/helpers/path_helper.rst
@@ -29,7 +29,8 @@
 
 	:param	string	$path: Path
 	:param	bool	$check_existance: Whether to check if the path actually exists
-	:returns:	string
+	:returns:	An absolute path
+	:rtype:	string
 
 	This function will return a server path without symbolic links or
 	relative directory structures. An optional second argument will
diff --git a/user_guide_src/source/helpers/security_helper.rst b/user_guide_src/source/helpers/security_helper.rst
index 7df85d0..2e26890 100644
--- a/user_guide_src/source/helpers/security_helper.rst
+++ b/user_guide_src/source/helpers/security_helper.rst
@@ -28,18 +28,19 @@
 
 	:param	string	$str: Input data
 	:param	bool	$is_image: Whether we're dealing with an image
-	:returns:	string
+	:returns:	XSS-clean string
+	:rtype:	string
 
 	Provides Cross Site Script Hack filtering.
 
 	This function is an alias for ``CI_Input::xss_clean()``. For more info,
 	please see the :doc:`Input Library <../libraries/input>` documentation.
 
-
 .. function:: sanitize_filename($filename)
 
 	:param	string	$filename: Filename
-	:returns:	string
+	:returns:	Sanitized file name
+	:rtype:	string
 
 	Provides protection against directory traversal.
 
@@ -52,7 +53,8 @@
 
 	:param	string	$str: Input
 	:param	string	$type: Algorithm
-	:returns:	string
+	:returns:	Hex-formatted hash
+	:rtype:	string
 
 	Permits you to create one way hashes suitable for encrypting
 	passwords. Will use SHA1 by default.
@@ -73,8 +75,9 @@
 
 .. function:: strip_image_tags($str)
 
-	:param	string	$str: Input
-	:returns:	string
+	:param	string	$str: Input string
+	:returns:	The input string with no image tags
+	:rtype:	string
 
 	This is a security function that will strip image tags from a string.
 	It leaves the image URL as plain text.
@@ -90,8 +93,9 @@
 
 .. function:: encode_php_tags($str)
 
-	:param	string	$str: Input
-	:returns:	string
+	:param	string	$str: Input string
+	:returns:	Safely formatted string
+	:rtype:	string
 
 	This is a security function that converts PHP tags to entities.
 
diff --git a/user_guide_src/source/helpers/smiley_helper.rst b/user_guide_src/source/helpers/smiley_helper.rst
index 077c56a..b980840 100644
--- a/user_guide_src/source/helpers/smiley_helper.rst
+++ b/user_guide_src/source/helpers/smiley_helper.rst
@@ -116,7 +116,8 @@
 
 	:param	string	$image_url: URL path to the smileys directory
 	:param	string	$alias: Field alias
-	:returns:	array
+	:returns:	An array of ready to use smileys
+	:rtype:	array
 
 	Returns an array containing your smiley images wrapped in a clickable
 	link. You must supply the URL to your smiley folder and a field id or
@@ -124,14 +125,15 @@
 
 	Example::
 
-		$image_array = get_smiley_links("http://example.com/images/smileys/", "comment");
-
+		$image_array = get_clickable_smileys('http://example.com/images/smileys/', 'comment');
 
 .. function:: smiley_js([$alias = ''[, $field_id = ''[, $inline = TRUE]]])
 
 	:param	string	$alias: Field alias
 	:param	string	$field_id: Field ID
 	:param	bool	$inline: Whether we're inserting an inline smiley
+	:returns:	Smiley-enabling JavaScript code
+	:rtype:	string
 
 	Generates the JavaScript that allows the images to be clicked and
 	inserted into a form field. If you supplied an alias instead of an id
@@ -143,13 +145,13 @@
 
 		<?php echo smiley_js(); ?>
 
-
 .. function:: parse_smileys([$str = ''[, $image_url = ''[, $smileys = NULL]]])
 
 	:param	string	$str: Text containing smiley codes
 	:param	string	$image_url: URL path to the smileys directory
 	:param	array	$smileys: An array of smileys
-	:returns:	string
+	:returns:	Parsed smileys
+	:rtype:	string
 
 	Takes a string of text as input and replaces any contained plain text
 	smileys into the image equivalent. The first parameter must contain your
diff --git a/user_guide_src/source/helpers/string_helper.rst b/user_guide_src/source/helpers/string_helper.rst
index 1ca654e..922bc6b 100644
--- a/user_guide_src/source/helpers/string_helper.rst
+++ b/user_guide_src/source/helpers/string_helper.rst
@@ -29,7 +29,8 @@
 
 	:param	string	$type: Randomization type
 	:param	int	$len: Output string length
-	:returns:	string
+	:returns:	A random string
+	:rtype:	string
 
 	Generates a random string based on the type and length you specify.
 	Useful for creating passwords or generating random hashes.
@@ -52,13 +53,13 @@
 	.. note:: Usage of the *unique* and *encrypt* types is DEPRECATED. They
 		are just aliases for *md5* and *sha1* respectively.
 
-
 .. function:: increment_string($str[, $separator = '_'[, $first = 1]])
 
 	:param	string	$str: Input string
 	:param	string	$separator: Separator to append a duplicate number with
 	:param	int	$first: Starting number
-	:returns:	string
+	:returns:	An incremented string
+	:rtype:	string
 
 	Increments a string by appending a number to it or increasing the
 	number. Useful for creating "copies" or a file or duplicating database
@@ -74,7 +75,8 @@
 .. function:: alternator($args)
 
 	:param	mixed	$args: A variable number of arguments
-	:returns:	mixed
+	:returns:	Alternated string(s)
+	:rtype:	mixed
 
 	Allows two or more items to be alternated between, when cycling through
 	a loop. Example::
@@ -97,12 +99,12 @@
 	.. note:: To use multiple separate calls to this function simply call the
 		function with no arguments to re-initialize.
 
-
 .. function:: repeater($data[, $num = 1])
 
 	:param	string	$data: Input
 	:param	int	$num: Number of times to repeat
-	:returns:	string
+	:returns:	Repeated string
+	:rtype:	string
 
 	Generates repeating copies of the data you submit. Example::
 
@@ -118,7 +120,8 @@
 .. function:: reduce_double_slashes($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	A string with normalized slashes
+	:rtype:	string
 
 	Converts double slashes in a string to a single slash, except those
 	found in URL protocol prefixes (e.g. http://).
@@ -131,10 +134,11 @@
 
 .. function:: strip_slashes($data)
 
-	:param	array	$data: Input
-	:returns:	array
+	:param	mixed	$data: Input string or an array of strings
+	:returns:	String(s) with stripped slashes
+	:rtype:	mixed
 
-Removes any slashes from an array of strings.
+	Removes any slashes from an array of strings.
 
 	Example::
 
@@ -156,11 +160,11 @@
 		and handle string inputs. This however makes it just an
 		alias for ``stripslashes()``.
 
-
 .. function:: trim_slashes($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	Slash-trimmed string
+	:rtype:	string
 
 	Removes any leading/trailing slashes from a string. Example::
 
@@ -171,13 +175,13 @@
 		|
 		| trim($str, '/');
 
-
 .. function:: reduce_multiples($str[, $character = ''[, $trim = FALSE]])
 
 	:param	string	$str: Text to search in
 	:param	string	$character: Character to reduce
 	:param	bool	$trim: Whether to also trim the specified character
-	:returns:	string
+	:returns:	Reduced string
+	:rtype:	string
 
 	Reduces multiple instances of a particular character occuring directly
 	after each other. Example::
@@ -191,11 +195,11 @@
 		$string = ",Fred, Bill,, Joe, Jimmy,";
 		$string = reduce_multiples($string, ", ", TRUE); //results in "Fred, Bill, Joe, Jimmy"
 
-
 .. function:: quotes_to_entities($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	String with quotes converted to HTML entities
+	:rtype:	string
 
 	Converts single and double quotes in a string to the corresponding HTML
 	entities. Example::
@@ -207,7 +211,8 @@
 .. function:: strip_quotes($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	String with quotes stripped
+	:rtype:	string
 
 	Removes single and double quotes from a string. Example::
 
diff --git a/user_guide_src/source/helpers/text_helper.rst b/user_guide_src/source/helpers/text_helper.rst
index 788fe8b..88a6d06 100644
--- a/user_guide_src/source/helpers/text_helper.rst
+++ b/user_guide_src/source/helpers/text_helper.rst
@@ -29,7 +29,8 @@
 	:param	string	$str: Input string
 	:param	int	$limit: Limit
 	:param	string	$end_char: End character (usually an ellipsis)
-	:returns:	string
+	:returns:	Word-limited string
+	:rtype:	string
 
 	Truncates a string to the number of *words* specified. Example::
 
@@ -46,7 +47,8 @@
 	:param	string	$str: Input string
 	:param	int	$n: Number of characters
 	:param	string	$end_char: End character (usually an ellipsis)
-	:returns:	string
+	:returns:	Character-limited string
+	:rtype:	string
 
 	Truncates a string to the number of *characters* specified. It
 	maintains the integrity of words so the character count may be slightly
@@ -64,11 +66,11 @@
 	.. note:: If you need to truncate to an exact number of characters please
 		see the :func:`ellipsize()` function below.
 
-
 .. function:: ascii_to_entities($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	A string with ASCII values converted to entities
+	:rtype:	string
 
 	Converts ASCII values to character entities, including high ASCII and MS
 	Word characters that can cause problems when used in a web page, so that
@@ -82,21 +84,21 @@
 
 		$string = ascii_to_entities($string);
 
-
 .. function::entities_to_ascii($str[, $all = TRUE])
 
 	:param	string	$str: Input string
 	:param	bool	$all: Whether to convert unsafe entities as well
-	:returns:	string
+	:returns:	A string with HTML entities converted to ASCII characters
+	:rtype:	string
 
 	This function does the opposite of :func:`ascii_to_entities()`.
 	It turns character entities back into ASCII.
 
-
 .. function:: convert_accented_characters($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	A string with accented characters converted
+	:rtype:	string
 
 	Transliterates high ASCII characters to low ASCII equivalents. Useful
 	when non-English characters need to be used where only standard ASCII
@@ -110,13 +112,13 @@
 		`application/config/foreign_chars.php` to define the to and
 		from array for transliteration.
 
-
 .. function:: word_censor($str, $censored[, $replacement = ''])
 
 	:param	string	$str: Input string
 	:param	array	$censored: List of bad words to censor
 	:param	string	$replacement: What to replace bad words with
-	:returns:	string
+	:returns:	Censored string
+	:rtype:	string
 
 	Enables you to censor words within a text string. The first parameter
 	will contain the original string. The second will contain an array of
@@ -129,11 +131,11 @@
 		$disallowed = array('darn', 'shucks', 'golly', 'phooey');
 		$string = word_censor($string, $disallowed, 'Beep!');
 
-
 .. function:: highlight_code($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	String with code highlighted via HTML
+	:rtype:	string
 
 	Colorizes a string of code (PHP, HTML, etc.). Example::
 
@@ -149,7 +151,8 @@
 	:param	string	$phrase: Phrase to highlight
 	:param	string	$tag_open: Opening tag used for the highlight
 	:param	string	$tag_close: Closing tag for the highlight
-	:returns:	string
+	:returns:	String with a phrase highlighted via HTML
+	:rtype:	string
 
 	Will highlight a phrase within a text string. The first parameter will
 	contain the original string, the second will contain the phrase you wish
@@ -175,12 +178,12 @@
 				color: #000;
 			};
 
-
 .. function:: word_wrap($str[, $charlim = 76])
 
 	:param	string	$str: Input string
 	:param	int	$charlim: Character limit
-	:returns:	string
+	:returns:	Word-wrapped string
+	:rtype:	string
 
 	Wraps text at the specified *character* count while maintaining
 	complete words.
@@ -192,15 +195,14 @@
 
 		// Would produce:  Here is a simple string of text that will help us demonstrate this function
 
-
 .. function:: ellipsize($str, $max_length[, $position = 1[, $ellipsis = '&hellip;']])
 
 	:param	string	$str: Input string
 	:param	int	$max_length: String length limit
-	:param	mixed	$position: Position to split at
-			(int or float)
+	:param	mixed	$position: Position to split at (int or float)
 	:param	string	$ellipsis: What to use as the ellipsis character
-	:returns:	string
+	:returns:	Ellipsized string
+	:rtype:	string
 
 	This function will strip tags from a string, split it at a defined
 	maximum length, and insert an ellipsis.
diff --git a/user_guide_src/source/helpers/typography_helper.rst b/user_guide_src/source/helpers/typography_helper.rst
index d32befa..deb3d16 100644
--- a/user_guide_src/source/helpers/typography_helper.rst
+++ b/user_guide_src/source/helpers/typography_helper.rst
@@ -29,7 +29,8 @@
 
 	:param	string	$str: Input string
 	:param	bool	$reduce_linebreaks: Whether to reduce multiple instances of double newlines to two
-	:returns:	string
+	:returns:	HTML-formatted typography-safe string
+	:rtype: string
 
 	Formats text so that it is semantically and typographically correct
 	HTML.
@@ -51,7 +52,8 @@
 .. function:: nl2br_except_pre($str)
 
 	:param	string	$str: Input string
-	:returns:	string
+	:returns:	String with HTML-formatted line breaks
+	:rtype:	string
 
 	Converts newlines to <br /> tags unless they appear within <pre> tags.
 	This function is identical to the native PHP ``nl2br()`` function,
@@ -61,12 +63,12 @@
 
 		$string = nl2br_except_pre($string);
 
-
 .. function:: entity_decode($str, $charset = NULL)
 
 	:param	string	$str: Input string
 	:param	string	$charset: Character set
-	:returns:	string
+	:returns:	String with decoded HTML entities
+	:rtype:	string
 
 	This function is an alias for ``CI_Security::entity_decode()``.
 	Fore more info, please see the :doc:`Security Library
diff --git a/user_guide_src/source/helpers/url_helper.rst b/user_guide_src/source/helpers/url_helper.rst
index 24c7e25..3bdcb8e 100644
--- a/user_guide_src/source/helpers/url_helper.rst
+++ b/user_guide_src/source/helpers/url_helper.rst
@@ -27,7 +27,8 @@
 
 	:param	string	$uri: URI string
 	:param	string	$protocol: Protocol, e.g. 'http' or 'https'
-	:returns:	string
+	:returns:	Site URL
+	:rtype:	string
 
 	Returns your site URL, as specified in your config file. The index.php
 	file (or whatever you have set as your site **index_page** in your config
@@ -54,13 +55,12 @@
 	This function is an alias for ``CI_Config::site_url()``. For more info,
 	please see the :doc:`Config Library <../libraries/config>` documentation.
 
-
-
 .. function:: base_url($uri = '', $protocol = NULL)
 
 	:param	string	$uri: URI string
 	:param	string	$protocol: Protocol, e.g. 'http' or 'https'
-	:returns:	string
+	:returns:	Base URL
+	:rtype:	string
 
 	Returns your site base URL, as specified in your config file. Example::
 
@@ -88,10 +88,10 @@
 	This function is an alias for ``CI_Config::base_url()``. For more info,
 	please see the :doc:`Config Library <../libraries/config>` documentation.
 
-
 .. function:: current_url()
 
-	:returns:	string
+	:returns:	The current URL
+	:rtype:	string
 
 	Returns the full URL (including segments) of the page being currently
 	viewed.
@@ -103,7 +103,8 @@
 
 .. function:: uri_string()
 
-	:returns:	string
+	:returns:	An URI string
+	:rtype:	string
 
 	Returns the URI segments of any page that contains this function.
 	For example, if your URL was this::
@@ -120,20 +121,21 @@
 
 .. function:: index_page()
 
-	:returns:	string
+	:returns:	'index_page' value
+	:rtype:	mixed
 
 	Returns your site **index_page**, as specified in your config file.
 	Example::
 
 		echo index_page();
 
-
 .. function:: anchor($uri = '', $title = '', $attributes = '')
 
 	:param	string	$uri: URI string
 	:param	string	$title: Anchor title
 	:param	mixed	$attributes: HTML attributes
-	:returns:	string
+	:returns:	HTML hyperlink (anchor tag)
+	:rtype:	string
 
 	Creates a standard HTML anchor link based on your local site URL.
 
@@ -170,7 +172,8 @@
 	:param	string	$uri: URI string
 	:param	string	$title: Anchor title
 	:param	mixed	$attributes: HTML attributes
-	:returns:	string
+	:returns:	Pop-up hyperlink
+	:rtype:	string
 
 	Nearly identical to the :func:`anchor()` function except that it
 	opens the URL in a new window. You can specify JavaScript window
@@ -213,7 +216,8 @@
 	:param	string	$email: E-mail address
 	:param	string	$title: Anchor title
 	:param	mixed	$attributes: HTML attributes
-	:returns:	string
+	:returns:	A "mail to" hyperlink
+	:rtype:	string
 
 	Creates a standard HTML e-mail link. Usage example::
 
@@ -225,25 +229,25 @@
 		$attributes = array('title' => 'Mail me');
 		echo mailto('me@my-site.com', 'Contact Me', $attributes);
 
-
 .. function:: safe_mailto($email, $title = '', $attributes = '')
 
 	:param	string	$email: E-mail address
 	:param	string	$title: Anchor title
 	:param	mixed	$attributes: HTML attributes
-	:returns:	string
+	:returns:	A spam-safe "mail to" hyperlink
+	:rtype:	string
 
 	Identical to the :func:`mailto()` function except it writes an obfuscated
 	version of the *mailto* tag using ordinal numbers written with JavaScript to
 	help prevent the e-mail address from being harvested by spam bots.
 
-
 .. function:: auto_link($str, $type = 'both', $popup = FALSE)
 
 	:param	string	$str: Input string
 	:param	string	$type: Link type ('email', 'url' or 'both')
 	:param	bool	$popup: Whether to create popup links
-	:returns:	string
+	:returns:	Linkified string
+	:rtype:	string
 
 	Automatically turns URLs and e-mail addresses contained in a string into
 	links. Example::
@@ -274,7 +278,8 @@
 	:param	string	$str: Input string
 	:param	string	$separator: Word separator
 	:param	string	$lowercase: Whether to transform the output string to lower-case
-	:returns:	string
+	:returns:	URL-formatted string
+	:rtype:	string
 
 	Takes a string as input and creates a human-friendly URL string. This is
 	useful if, for example, you have a blog in which you'd like to use the
@@ -309,7 +314,8 @@
 .. function:: prep_url($str = '')
 
 	:param	string	$str: URL string
-	:returns:	string
+	:returns:	Protocol-prefixed URL string
+	:rtype:	string
 
 	This function will add http:// in the event that a protocol prefix
 	is missing from a URL.
@@ -324,7 +330,7 @@
 	:param	string	$uri: URI string
 	:param	string	$method: Redirect method ('auto', 'location' or 'refresh')
 	:param	string	$code: HTTP Response code (usually 302 or 303)
-	:returns:	void
+	:rtype:	void
 
 	Does a "header redirect" to the URI specified. If you specify the full
 	site URL that link will be built, but for local links simply providing
diff --git a/user_guide_src/source/helpers/xml_helper.rst b/user_guide_src/source/helpers/xml_helper.rst
index 7d155e1..a40ea9a 100644
--- a/user_guide_src/source/helpers/xml_helper.rst
+++ b/user_guide_src/source/helpers/xml_helper.rst
@@ -30,7 +30,8 @@
 
 	:param string $str: the text string to convert
 	:param bool $protect_all: Whether to protect all content that looks like a potential entity instead of just numbered entities, e.g. &foo;
-	:returns: string
+	:returns: XML-converted string
+	:rtype:	string
 
 	Takes a string as input and converts the following reserved XML
 	characters to entities:
@@ -51,4 +52,4 @@
 
 	.. code-block:: html
 
-		&lt;p&gt;Here is a paragraph &amp; an entity (&#123;).&lt;/p&gt;
+		&lt;p&gt;Here is a paragraph &amp; an entity (&#123;).&lt;/p&gt;
\ No newline at end of file
